package com.alibaba.citrus.ots.price.sdk;

import com.alibaba.citrus.ots.price.dto.request.activity.*;
import com.alibaba.citrus.ots.price.dto.response.activity.ParticipateInActivityResponse;
//import com.alibaba.cz.base.tool.result.Result;
import com.alibaba.lattice2.epoch.sdk.model.Result;
import com.alibaba.lattice2.epoch.meshflow.model.annotation.MeshFlowService;

/**
 * @author hanguo
 * @date 2021/10/14
 * @Description 促销活动同步接口
 */
@MeshFlowService(apps = {"bc_ots"}, name = "ActivityWriteService")
public interface ActivityWriteService {

    /**
     * 同步活动抬头信息数据
     * @param syncActivityTitleDataRequest
     * @return
     */
    Result syncActivityTitleData(SyncActivityTitleDataRequest syncActivityTitleDataRequest);


    /**
     * 同步活动项目信息数据
     * @param syncActivityTermDataRequest
     * @return
     */
    Result syncActivityTermData(SyncActivityTermDataRequest syncActivityTermDataRequest);

    /**
     * 同步活动客户关系数据
     * @param syncActivityClientRelationDataRequest
     * @return
     */
    Result syncActivityClientRelationData(SyncActivityClientRelationDataRequest syncActivityClientRelationDataRequest);

    /**
     * 同步活动抬头_扩展数据（为促销活动更改（活动量及活动金额）提供的接口，有则更改，无则创建）
     * @param syncActivityTitleExtDataRequest
     * @return
     */
    Result syncActivityTitleExtData(SyncActivityTitleExtDataRequest syncActivityTitleExtDataRequest);

    /**
     * 同步活动项目和货品(原品)关系数据
     * @param syncActivityTermItemRelationDataRequest
     * @return
     */
    Result syncActivityTermItemRelationData(SyncActivityTermItemRelationDataRequest syncActivityTermItemRelationDataRequest);

    /**
     * 同步活动项目和货品(赠品)关系数据
     * @param syncActivityTermGiftRelationDataRequest
     * @return
     */
    Result syncActivityTermGiftRelationData(SyncActivityTermGiftRelationDataRequest syncActivityTermGiftRelationDataRequest);

    /**
     * 同步坎级活动数据
     * @param syncSegmentedActivityTermDataRequest
     * @return
     */
    Result syncSegmentedActivityTermData(SyncSegmentedActivityTermDataRequest syncSegmentedActivityTermDataRequest);

    /**
     * 同步坎级活动流水数据
     * @param syncOperateJournalFlowDataRequest
     * @return
     */
    Result syncOperateJournalFlowData(SyncOperateJournalFlowDataRequest syncOperateJournalFlowDataRequest);


    /**
     * 促销活动更改状态及有效期
     * @param updateActivityTitleDataRequest
     * @return
     */
     Result updateActivityTitleData(UpdateActivityTitleDataRequest updateActivityTitleDataRequest);


    /**
     * 增加参加活动的商品申请数量和活动申请金额
     * @param request
     * @return
     */
    Result<ParticipateInActivityResponse> participateActivity(ParticipateActivityRequest request);
}
